Stisknuti klaves
Otázka od: LUKES Václav
18. 10. 2002 13:29
Ahoj,
mam D6 a prosim o radu.
Stojim napr. na EDITu a ja bych rad, po stisku klaves CTRL+H napsal treba
hlasku ShowMessage('...');
Diky
V.
Odpovedá: Petr Hložek
18. 10. 2002 14:44
----- Original Message -----
From: "LUKES Václav" <lukes@ans.cz>
To: <delphi-l@clexpert.cz>
Sent: Friday, October 18, 2002 2:28 PM
Subject: Stisknuti klaves
>
> Ahoj,
>
> mam D6 a prosim o radu.
> Stojim napr. na EDITu a ja bych rad, po stisku klaves CTRL+H napsal treba
hlasku ShowMessage('...');
Ahoj,
do udalosti OnKeyPress napises toto:
if key=#8 then begin
ShowMessage('zmackle CTRL+H');
key:=#0
end
Odpovedá: ing. Jan Fiala
18. 10. 2002 16:00
1. do ActionListu dat akci s horkou klavesou Ctrl+H a v on Execute delat
co potrebujes. Bude pracovat v cele aplikaci
2. ad 1), pouze to bude polozka v popup menu. Bude pracovat nad tim,
ceho se popup menu tyka (treba formular)
3. v OnKeyDown prislusne komponenty (Editu) a to osetrit - pracuje
pouze pro ten jeden edit
--
ing. Jan Fiala
mailto:jan.fiala@iol.cz
18.10.2002 LUKES Václav:
> mam D6 a prosim o radu. Stojim napr. na EDITu a ja bych rad, po
> stisku klaves CTRL+H napsal treba hlasku ShowMessage('...');
Odpovedá: LUKES Václav
18. 10. 2002 16:26
Parada, diky, funguje to. Jeste malickost, ten znak # mi rika, ze jde o control
a ta osmicka mi rika, ze jde o osmi znak v abecede ?
V.
-----Original Message-----
From: Petr Hložek [mailto:petr_h@mrp.cz]
Sent: Friday, October 18, 2002 2:37 PM
To: delphi-l@clexpert.cz
Subject: Re: Stisknuti klaves
----- Original Message -----
From: "LUKES Václav" <lukes@ans.cz>
To: <delphi-l@clexpert.cz>
Sent: Friday, October 18, 2002 2:28 PM
Subject: Stisknuti klaves
>
> Ahoj,
>
> mam D6 a prosim o radu.
> Stojim napr. na EDITu a ja bych rad, po stisku klaves CTRL+H napsal treba
hlasku ShowMessage('...');
Ahoj,
do udalosti OnKeyPress napises toto:
if key=#8 then begin
ShowMessage('zmackle CTRL+H');
key:=#0
end
Odpovedá: Lubos Urban
18. 10. 2002 16:36
napises obsluhu udalosti onKeyDown alebo OnKeyUp alebo onKeyPress
napr. takto:
procedure TForm.Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if(Key= 72) and (ssCtrl in Shift) then
ShowMessage('message');
end;
----- Original Message -----
From: "LUKES Václav" <lukes@ans.cz>
To: <delphi-l@clexpert.cz>
Sent: Friday, October 18, 2002 2:28 PM
Subject: Stisknuti klaves
Ahoj,
mam D6 a prosim o radu.
Stojim napr. na EDITu a ja bych rad, po stisku klaves CTRL+H napsal treba
hlasku ShowMessage('...');
Diky
V.
Odpovedá: Roman
18. 10. 2002 16:45
>Parada, diky, funguje to. Jeste malickost, ten znak # mi rika, ze jde o
control a ta osmicka mi rika, ze jde o >osmi znak v abecede ?
>V.
>
>do udalosti OnKeyPress napises toto:
>
> if key=#8 then begin
> ShowMessage('zmackle CTRL+H');
> key:=#0
> end
Ne, ten # udava sestnactkovou soustavu, ta 8 je ASCII kod, ktery vraci
CTRL+H.
Radeji bych asi pouzil udalost OnKeyDown (popr. OnKeyUp).
Roman
==============================
http://kouzelne.misto.cz
Odpovedá: Petr Hložek
18. 10. 2002 15:52
----- Original Message -----
From: "LUKES Václav" <lukes@ans.cz>
To: <delphi-l@clexpert.cz>
Sent: Friday, October 18, 2002 2:56 PM
Subject: RE: Stisknuti klaves
> Parada, diky, funguje to. Jeste malickost, ten znak # mi rika, ze jde o
control a ta osmicka mi rika, ze jde o osmi znak v abecede ?
> V.
To #8 je ordinalni hodnota stisknute klavesy. Napsal jsem si na to ve
freepascalu programek. Tady je kod:
uses crt;
var
klav : Char;
begin
ClrScr;
repeat
klav:=ReadKey;
Writeln(ord(klav)); {vrati kod stiskle klavesy}
until klav=#27
end.
Odpovedá: ing. Jan Fiala
18. 10. 2002 18:59
18.10.2002 Roman:
> Ne, ten # udava sestnactkovou soustavu, ta 8 je ASCII kod, ktery vraci
> CTRL+H.
> Radeji bych asi pouzil udalost OnKeyDown (popr. OnKeyUp).
Sestnactkovou asi ne. To by tam musele byt znak $
#8 je znak retezce, napsany pomoci jeho ASCII kodu v desitkove
soustave. Je to jako bys napsal retezec 'A'#72'OJ'
--
ing. Jan Fiala
mailto:jan.fiala@iol.cz
Odpovedá: Lebeda David
21. 10. 2002 7:15
> Parada, diky, funguje to. Jeste malickost, ten znak # mi rika, ze jde
> o control a ta osmicka mi rika, ze jde o osmi znak v abecede ?
Ne. Key je typu char. Hodnotu char muzes identifikovat primo znakem (napr. 'A'
nebo pomoci ordinalni hodnoty. V takovem pripade se pred to cislo pise #. V
danem
pripade 'A' a #65 je totez. Blize viz help.
> do udalosti OnKeyPress napises toto:
>
> if key=#8 then begin
> ShowMessage('zmackle CTRL+H');
> key:=#0
> end
Tohle mi nepripada moc citelne. Znak #8 normalne odpovida klavese backspace,
kterou ovsem nelze chytit v OnKeyPress (muselo by se do OnKeyDown). To, ze
dvojice CTRL + H se v OnKeyPress jevi jako #8 mi prijde spis jako vedlejsi
efekt a
CTRL+H bych chytal v OnKeyDown doopravdy jako CTRL a H, tj.
if (ssCTRL in Shift) and (Key = ord('H')) then...
psano z hlavy bez Delphi, snad je to dobre.
David Lebeda